package com.pxst.sys.service;

import javax.validation.Valid;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.pxst.bank.resp.BankDetailUserListResp;
import com.pxst.resp.PageResp;
import com.pxst.sys.resp.UserResp;
import org.springframework.web.bind.annotation.RequestBody;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pxst.resp.ApiResp;
import com.pxst.sys.entity.UserEntity;
import com.pxst.sys.req.UserCreateReq;

import java.util.List;
import java.util.Map;

/** 
* @author yangxy
* @version 创建时间：2023年7月26日 下午12:38:37 
*/
public interface UserService extends IService<UserEntity> {
	/**
	 * 新增用户
	* @author yangxy
	* @version 创建时间：2023年7月26日 下午6:29:17 
	* @param userCreateParam
	* @return
	 * @throws IllegalAccessException 
	 * @throws IllegalArgumentException 
	 */
	public ApiResp<UserEntity> create(UserCreateReq userCreateParam);

	/**
	 * 修改用户
	 * @param userCreateParam
	 * @return
	 */
	public ApiResp<UserEntity> update(Long roleId, UserCreateReq userCreateParam);

	/**
	 * 查询全部用户
	 * @param userCreateParam
	 * @return
	 */
    ApiResp<PageResp<UserResp>> getAll(UserCreateReq userCreateParam);

	/**
	 * 修改用户某些字段值
	 * @param roleId 角色id
	 * @param fieldsMap 需要修改的字段名和值
	 * @return
	 */
    ApiResp<UserEntity> updateFields(Long roleId, Map<String, Object> fieldsMap);

	/**
	 * 银行-详情-选择更新者下拉列表
	 * @return
	 */
	ApiResp<BankDetailUserListResp> getBankLogUserNameList();
}
